JSON (JavaScript Object Notation) থেকে C# Object এ রূপান্তর করার প্রক্রিয়াটি সাধারণত Deserialization নামে পরিচিত। এটি একটি প্রক্রিয়া যেখানে JSON ডেটাকে C# ক্লাসে কনভার্ট করা হয়, যাতে C# প্রোগ্রাম থেকে JSON ডেটা ব্যবহৃত হতে পারে। C# এ JSON ডেটা ডেসিরিয়ালাইজ (Deserialize) করতে Newtonsoft.Json বা System.Text.Json লাইব্রেরি ব্যবহার করা হয়।
এখানে আমরা Newtonsoft.Json লাইব্রেরি ব্যবহার করে JSON থেকে C# Object এ রূপান্তর (Deserialization) করার প্রক্রিয়া দেখবো।
Newtonsoft.Json ব্যবহার করে JSON থেকে C# Object এ রূপান্তর
১. Newtonsoft.Json লাইব্রেরি যোগ করা
প্রথমে আপনাকে Newtonsoft.Json লাইব্রেরি আপনার প্রজেক্টে যোগ করতে হবে। যদি আপনি NuGet ব্যবহার করেন, তাহলে নিম্নলিখিত কমান্ড দিয়ে লাইব্রেরিটি ইনস্টল করতে পারবেন:
Install-Package Newtonsoft.Json
২. C# ক্লাস তৈরি করা
আপনি যেই JSON ডেটা রূপান্তর করতে চান, তার সাথে সঙ্গতিপূর্ণ একটি C# ক্লাস তৈরি করতে হবে। ধরুন, আমাদের একটি JSON ডেটা রয়েছে যেখানে নাম এবং বয়সের তথ্য রয়েছে:
{
"name": "Alice",
"age": 28
}
এটি C# তে একটি ক্লাসে রূপান্তর করার জন্য নিচে একটি C# ক্লাস তৈরি করতে হবে:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
৩. JSON থেকে C# Object এ রূপান্তর (Deserialization)
এখন, আমরা Newtonsoft.Json ব্যবহার করে JSON ডেটাকে C# অবজেক্টে রূপান্তর করতে পারি। নিচে একটি উদাহরণ দেখানো হয়েছে:
using Newtonsoft.Json;
using System;
class Program
{
static void Main()
{
// JSON ডেটা
string json = "{\"name\":\"Alice\",\"age\":28}";
// JSON থেকে C# অবজেক্টে রূপান্তর (Deserialization)
Person person = JsonConvert.DeserializeObject<Person>(json);
// C# অবজেক্টের ডেটা প্রিন্ট করা
Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
}
}
এখানে:
JsonConvert.DeserializeObject<Person>(json)মেথডটি JSON ডেটা কে C# ক্লাসPersonএ রূপান্তর করবে।- JSON ডেটা সঠিকভাবে C# অবজেক্টে রূপান্তর হয়ে যাবে, এবং পরে সেই অবজেক্ট থেকে প্রপার্টি অ্যাক্সেস করা যাবে।
৪. আউটপুট
উপরোক্ত কোডটি চালানোর পর, আউটপুট হবে:
Name: Alice, Age: 28
এখানে JSON ডেটা সঠিকভাবে C# অবজেক্টে রূপান্তরিত হয়ে আউটপুট প্রদর্শিত হয়েছে।
System.Text.Json ব্যবহার করে JSON থেকে C# Object এ রূপান্তর
C# 8.0 এবং তার পরবর্তী সংস্করণে, .NET Core এ System.Text.Json লাইব্রেরি অন্তর্ভুক্ত করা হয়েছে, যা JSON প্রোসেসিংয়ের জন্য একটি বিল্ট-ইন লাইব্রেরি। এই লাইব্রেরি ব্যবহার করেও JSON থেকে C# Object এ রূপান্তর করা সম্ভব।
১. System.Text.Json ব্যবহার করে JSON থেকে C# Object এ রূপান্তর
using System;
using System.Text.Json;
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
class Program
{
static void Main()
{
// JSON ডেটা
string json = "{\"name\":\"Alice\",\"age\":28}";
// JSON থেকে C# অবজেক্টে রূপান্তর (Deserialization)
Person person = JsonSerializer.Deserialize<Person>(json);
// C# অবজেক্টের ডেটা প্রিন্ট করা
Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
}
}
এখানে:
JsonSerializer.Deserialize<Person>(json)মেথডটি JSON ডেটাকে C# অবজেক্টে রূপান্তর করবে।
২. আউটপুট
উপরোক্ত কোডটি চালানোর পর, আউটপুট হবে:
Name: Alice, Age: 28
JSON থেকে C# Object এ রূপান্তর করার সময় কিছু গুরুত্বপূর্ণ বিষয়
Property Naming: যদি JSON এর কীগুলোর নাম C# ক্লাসের প্রপার্টি নামের সাথে মেলে না, তবে আপনি
[JsonProperty]বা[JsonPropertyName]অ্যাট্রিবিউট ব্যবহার করতে পারেন (Newtonsoft.Json বা System.Text.Json এ)।উদাহরণ:
public class Person { [JsonProperty("name")] // Newtonsoft.Json এর জন্য public string Name { get; set; } [JsonProperty("age")] public int Age { get; set; } }- Error Handling: JSON ডেটা যখন C# অবজেক্টে রূপান্তরিত হয়, তখন যদি কোনো সমস্যা হয়, যেমন ডেটা ফর্ম্যাট ভুল, তাহলে আপনি try-catch ব্লক ব্যবহার করে এরর হ্যান্ডলিং করতে পারেন।
সারাংশ
JSON থেকে C# Object এ রূপান্তর (Deserialization) করার জন্য Newtonsoft.Json এবং System.Text.Json দুটি শক্তিশালী এবং জনপ্রিয় লাইব্রেরি রয়েছে। Newtonsoft.Json লাইব্রেরি বেশি ব্যবহৃত হলেও, .NET Core-এ System.Text.Json একটি বিল্ট-ইন অপশন হিসেবে আসে। JSON ডেটা থেকে C# অবজেক্ট তৈরি করতে DeserializeObject() বা JsonSerializer.Deserialize() মেথড ব্যবহার করা হয়, এবং আপনি প্রপার্টি নাম মেলানোর জন্য JsonProperty অ্যাট্রিবিউট ব্যবহার করতে পারেন।
Read more